package com.yang.mapper;

import com.yang.entity.Commodity;
import com.yang.entity.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

@Mapper
public interface UserMapper {
    /**
     * 判断账号是否重复
     *
     * @param userAccount 用户账号
     * @return count 返回查询的行数
     */
    @Select("SELECT * FROM user WHERE user_account = #{userAccount}")
    User findByUserAccount(String userAccount);


    /**
     * 用户登录功能
     *
     * @param userAccount  用户账号
     * @param userPassword 用户密码
     * @return user 返回用户相关信息
     */
    @Select("SELECT * FROM user WHERE user_account = #{userAccount} and user_password = #{userPassword}")
    User userLogin(String userAccount, String userPassword);

    /**
     * 新增账号和密码
     *
     * @param userAccount  用户账号
     * @param userPassword 用户密码
     */
    @Insert("insert into user" +
            "(user_id, user_account, user_password) values" +
            "(default, #{userAccount}, #{userPassword})")
    void insertUser(String userAccount, String userPassword);


    /**
     * 获取用户对应的收货信息
     */
    public Commodity getCommodityByUserAccount(String userAccount);

    /**
     * 根据用户id修改用户的密码
     *
     * @param userId      用户id
     * @param newPassWord 用户新密码
     */
    @Update("update user set user_password = #{newPassWord} where user_id = #{userId}")
    void updatePassWord(Integer userId, String newPassWord);

    /**
     * 根据用户id添加或修改用户头像地址
     *
     * @param userId
     * @param url
     */
    @Update("update user set user_picture = #{url} where user_id = #{userId}")
    void updateAvatar(Integer userId, String url);

    /**
     * 根据用户id修改用户昵称
     *
     * @param userId   用户id
     * @param nickName 用户昵称
     */
    @Update("update user set user_nickname = #{nickName} where user_id = #{userId}")
    void updateNickName(Integer userId, String nickName);
}
